package com.huang.aspects;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

/**
 * 切面类，处理登录,统计方法的执行时间
 */
@Component
@Aspect //提醒这是一个切面类
public class ServiceAspects {

	/**
	 * 故事的插入地点
	 */
	@Pointcut("execution(* com.huang.service.crud.*.*(..))")
	public void anyMethod(){}

	/**
	 * 故事：统计时间
	 */
	@Around("anyMethod()")
	public void exeTime(ProceedingJoinPoint joinPoint){
		long stratTime = System.currentTimeMillis();

		//中间方法
		try {
			Object proceed = joinPoint.proceed();
		} catch (Throwable throwable) {
			throwable.printStackTrace();
		}

		long endTime = System.currentTimeMillis();

		System.out.println("方法执行时间："+(endTime-stratTime)+"毫秒！");
	}

}
